"""
获取用户信息

获取用户信息接口有访问权限要求: 用户登录才能访问, 所以需要实现权限控制, 结合flask基础阶段的学习内容, 需要实现以下两步:
    定义钩子函数: 获取用户信息, 并使用g变量传递数据
    定义装饰器: 根据用户信息进行访问限制
"""
# 定义钩子函数, 用于获取用户信息
from flask import request, g
from utils.jwt_util import verify_jwt


def get_userinfo():
    """获取用户信息"""
    # 获取请求头中的token
    token = request.headers.get('Authorization')

    g.userid = None  # 如果未登录, userid=None

    if token:  # 如果传递了token
        # 校验token
        data = verify_jwt(token)

        if data:  # 校验成功
            g.userid = data.get('userid')  # 如果已登录, userid=11
